//package com.zmn.plat.dubbo.interfaces.servcategory;
//
//import java.util.List;
//
//import javax.validation.Valid;
//import javax.validation.constraints.NotNull;
//import javax.validation.constraints.Positive;
//
//import com.zmn.common.dto.KvDTO;
//import com.zmn.common.dto.VtDTO;
//import com.zmn.common.dto2.ResponseDTO;
//import com.zmn.plat.common.dto.category.*;
//import com.zmn.plat.common.dto.servcategory.ServAssCategoryDRO;
//
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//
///**
// * 服务分类/产品分类关联
// *
// * @author duanzuocai
// * @version v1.0
// * @since 2018/10/29 20:47
// */
//@Api(value = "服务分类/产品分类关联服务", tags = {"服务分类/产品分类关联"})
//public interface ServAssCategoryListRemoteService {
//
//    /**
//     * 描述: 根据服务分类和后台产品二级分类查询检修提醒
//     *
//     * @param servCategId 服务分类id
//     * @param categId  后台二级产品分类id
//     * @return ResponseDTO<String> 检修提醒
//     * @author fengxuecai
//     * @since 2021/11/24 14:31
//     */
//    @ApiOperation(value = "根据服务分类和后台产品二级分类查询检修提醒", response = ResponseDTO.class, tags = {"查询检修提醒"})
//    ResponseDTO<String> getTstDripByServCategIdAndCategId(
//            @NotNull(message = "servCategId不能为空") @Positive(message = "servCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) @Valid Integer servCategId,
//            @NotNull(message = "categId") @Positive(message = "categId必须为大于0的正整数") @ApiParam(value = "后台产品二级分类ID", required = true) @Valid Integer categId);
//
//
//    /**
//     * 描述: 根据后台产品查询检修提醒
//     *
//     * @param bkProductId  后台产品id
//     * @return ResponseDTO<String> 检修提醒
//     * @author fengxuecai
//     * @since 2021/11/24 14:31
//     */
//    @ApiOperation(value = "根据后台产品查询检修提醒", response = ResponseDTO.class, tags = {"查询检修提醒"})
//    ResponseDTO<String> getTstDripByBkProductId(
//            @NotNull(message = "bkProductId") @Positive(message = "bkProductId必须为大于0的正整数") @ApiParam(value = "后台产品ID", required = true) @Valid Integer bkProductId);
//
//
//
//    /**
//     * 根据服务分类ID和后台二级产品分类ID查询免责条款
//     *
//     * @param servCategId
//     *            服务分类ID
//     * @param categTwoId
//     *            后台二级产品分类ID
//     * @return String 免责条款，如果分类关联关系不存在则返回调用失败
//     */
//    @ApiOperation(value = "根据服务分类ID和后台二级产品分类ID查询免责条款", response = ResponseDTO.class, tags = {"获取免责条款"})
//    ResponseDTO<String> getDisclaimerByServAndCategTwoId(
//        @NotNull(message = "servCategId不能为空") @Positive(message = "servCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer servCategId,
//        @NotNull(message = "categTwoId不能为空") @Positive(message = "categTwoId必须为大于0的正整数") @ApiParam(value = "后台产品二级分类ID", required = true) Integer categTwoId);
//
//    /**
//     * 描述: 根据服务分类ID和后台二级产品分类ID查询产品组信息
//     *
//     * @param servCategId
//     *            服务分类ID
//     * @param categTwoId
//     *            后台二级产品分类ID
//     * @return CategoryProductGroupDRO
//     * @auther tanghongjun
//     * @since 2020/9/11
//     */
//    @ApiOperation(value = "根据服务分类ID和后台二级产品分类ID查询产品组信息", response = ResponseDTO.class, tags = {"获取产品组信息"})
//    ResponseDTO<CategoryProductGroupDRO> getProductGroupByCategId(
//        @NotNull(message = "servCategId不能为空") @Positive(message = "servCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer servCategId,
//        @NotNull(message = "categTwoId不能为空") @Positive(message = "categTwoId必须为大于0的正整数") @ApiParam(value = "后台产品二级分类ID", required = true) Integer categTwoId);
//
//
//    @ApiOperation(value = "根据服务分类ID和后台二级产品分类ID和业务类型查询产品组信息", response = ResponseDTO.class, tags = {"获取产品组信息(区分业务类型)"})
//    ResponseDTO<CategorySimpleProductGroupDRO> getProductGroupByCategIdAndBizType(
//            @NotNull(message = "servCategId不能为空") @Positive(message = "servCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer servCategId,
//            @NotNull(message = "categTwoId不能为空") @Positive(message = "categTwoId必须为大于0的正整数") @ApiParam(value = "后台产品二级分类ID", required = true) Integer categTwoId,
//            @NotNull(message = "bizType不能为空") @Positive(message = "bizType必须为大于0的正整数") @ApiParam(value = "业务类型", required = true) Integer bizType);
//
//    @ApiOperation(value = "查询后台品类与产品组关联关系", response = ResponseDTO.class, tags = {"查询后台品类与产品组关联关系"})
//    ResponseDTO<List<CategoryProductGroupDRO>> listCategoryAndProductGroup();
//
//    /**
//     * 描述: 根据服务分类ID和前台台二级产品分类ID、业务类型查询产品组信息 根据前台分类查询其关联的后台分类ID，并取对应后台分类有配置对应业务类型的产品组信息（取第一条）
//     *
//     * @param servCategId
//     *            服务分类ID
//     * @param showCategTwoId
//     *            前台二级产品分类ID
//     * @param bizType
//     *            业务类型
//     * @return VtDTO(groupId, groupName)
//     * @auther tanghongjun
//     * @since 2020/9/11
//     */
//    @ApiOperation(value = "根据服务分类ID和前台台二级产品分类ID、业务类型查询产品组信息", response = ResponseDTO.class, tags = {"获取产品组信息"})
//    ResponseDTO<VtDTO> getProductGroupByShowCategId(@NotNull(message = "servCategId不能为空") @Positive(message = "servCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer servCategId,
//        @NotNull(message = "showCategTwoId不能为空") @Positive(message = "showCategTwoId必须为大于0的正整数") @ApiParam(value = "前台产品二级分类ID", required = true) Integer showCategTwoId,
//        @NotNull(message = "bizType不能为空") @Positive(message = "bizType必须为大于0的正整数") @ApiParam(value = "业务类型", required = true) Integer bizType);
//
//    /**
//     * 描述：根据服务分类ID和前台二级产品分类ID、业务类型查询产品组信息 根据前台分类查询其关联的后台分类ID，并取对应后台分类有配置对应业务类型的产品组信息
//     * @param servCategId     服务分类ID
//     * @param showCategTwoId  前台二级分类ID
//     * @param bizType         业务类型
//     * @auther linfeng
//     * @since 2020/10/14 10:19
//     * @return
//     */
//    @ApiOperation(value = "根据服务分类ID和前台二级产品分类ID、业务类型查询产品组信息", response = ResponseDTO.class, tags = {"获取产品组信息(区分业务类型)"})
//    ResponseDTO<CategorySimpleProductGroupDRO> getProductGroupByShowCategIdAndBizType(@NotNull(message = "servCategId不能为空") @Positive(message = "servCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer servCategId,
//                                                                                      @NotNull(message = "showCategTwoId不能为空") @Positive(message = "showCategTwoId必须为大于0的正整数") @ApiParam(value = "前台产品二级分类ID", required = true) Integer showCategTwoId,
//                                                                                      @NotNull(message = "bizType不能为空") @Positive(message = "bizType必须为大于0的正整数") @ApiParam(value = "业务类型", required = true) Integer bizType);
//
//    /**
//     * 根据服务类型ID获取后台关联的一级分类
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @return 后台一级产品分类ID
//     */
//    @Deprecated
//    @ApiOperation(value = "根据服务类型ID获取后台关联的一级分类", response = ResponseDTO.class, notes = "已过时", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>>
//        listByServiceCategId(@NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId);
//
//    /**
//     * 根据服务类型ID获取关联的一级分类
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @param showType
//     *            前后台字段1后台2前台
//     * @return 一级产品分类实体DRO
//     */
//    @ApiOperation(value = "根据服务类型ID获取关联的一级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>> listCategOneByServiceCategIdAndShowType(@Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID") Integer serviceCategId,
//        @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "服务分类ID") Integer showType);
//
//    /**
//     * 根据服务类型ID列表获取关联的一级分类
//     *
//     * @param servCategIds
//     *            服务分类ID集合
//     * @param showType
//     *            前后台字段1后台2前台
//     * @return 一级产品分类实体DRO
//     */
//    @ApiOperation(value = "根据服务类型ID列表获取关联的一级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>> listCategOneByServCategIdsAndShowType(@ApiParam(value = "服务分类ID集合") List<Integer> servCategIds,
//        @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "服务分类ID") Integer showType);
//
//    /**
//     * 根据分类查询服务分类信息
//     *
//     * @param showType 分类 1后端分类 2前端分类
//     * @return 服务分类信息集合
//     */
//    @ApiOperation(value = "根据分类查询服务分类信息", response = ResponseDTO.class, notes = "服务分类", tags = {"服务分类"})
//    ResponseDTO<List<AssCategoryDRO>>
//    listServiceCategoryByShowType(@NotNull(message = "showType不能为空") @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "前台后台标志", required = true) Integer showType);
//
//
//    /**
//     * 描述: 根据showtypecha
//     *
//     * @param showType
//     *            显示的分类
//     * @return com.zmn.common.dto2.ResponseDTO<com.zmn.plat.common.dto.category.AssCategoryDRO>
//     * @author wangjie
//     * @since 2020/3/10
//     **/
//    @ApiOperation(value = "根据showType查询数据", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<AssCategoryDRO>> listCategByShowType(@NotNull(message = "showType不能为空") @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "显示的分类", required = true) Integer showType);
//
//    /**
//     * 描述: 根据前台产品ID获取后台产品信息，并返回对应产品的服务分类、一级分类、二级分类信息
//     *
//     * @param showProductId
//     *            前台产品ID
//     * @return com.zmn.common.dto2.ResponseDTO《com.zmn.plat.common.dto.category.AssSimpleCategoryDRO》
//     * @author tanghongjun
//     * @since 2020年7月17日15:45:45
//     **/
//    @ApiOperation(value = "根据前台产品ID获取后台产品信息，并返回对应产品的服务分类、一级分类、二级分类信息", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<AssSimpleCategoryDRO>>
//        listAssSimpleCategByShowProductId(@NotNull(message = "showProductId不能为空") @Positive(message = "showProductId必须为大于0的正整数") @ApiParam(value = "前台产品ID", required = true) Integer showProductId);
//
//    /**
//     * 根据服务类型ID获取关联的一级分类和二级分类关系集合 eg：KvDTO（一级分类Id，一级分类名称，children 二级分类集合）
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @param showType
//     *            前后台字段1后台2前台
//     * @return 一级产品分类实体DRO
//     */
//    @ApiOperation(value = "根据服务类型ID获取关联的一级分类和二级分类关系集合", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<KvDTO>> listCategKVByServiceCategIdAndShowType(
//        @NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId,
//        @NotNull(message = "showType不能为空") @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "前后台字段1后台2前台", required = true) Integer showType);
//
//    /**
//     * 根据服务类型ID获取关联的二级分类
//     *
//     * @param serviceCategId
//     * @return
//     */
//    @Deprecated
//    @ApiOperation(value = "根据服务类型ID获取关联的二级分类", response = ResponseDTO.class, notes = "已过时", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>>
//        listByServiceCategTwoId(@NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId);
//
//    /**
//     * 根据服务类型ID获取关联的二级分类
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @param show
//     *            前后台字段1后台2前台
//     * @return 二级产品分类实体DRO
//     */
//    @ApiOperation(value = "根据服务类型ID获取关联的二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>> listCategByServiceCategIdAndShowType(
//        @NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId,
//        @Positive(message = "show必须为大于0的正整数") @ApiParam(value = "前后台字段1后台2前台") Integer show);
//
//    /**
//     * 根据服务类型ID获取关联的二级分类
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @return 返回分类关联DRO实体
//     */
//    @Deprecated
//    @ApiOperation(value = "根据服务类型ID获取关联的二级分类", response = ResponseDTO.class, notes = "已过时", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<ServAssCategoryDRO>>
//        listCategTwoByServiceCategId(@NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId);
//
//    /**
//     * 根据服务类型ID获取关联的二级分类
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @return 返回分类关联DRO实体
//     */
//    @ApiOperation(value = "根据服务类型ID获取关联的二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<ServAssCategoryDRO>> listCategTwoByServiceCategIdAndShowType(
//        @NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId,
//        @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "产品类型") Integer showType);
//
//    /**
//     * 查询关联的服务分类、二级分类
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @param categOneId
//     *            一级产品分类ID
//     * @param categTwo
//     *            二级产品分类ID
//     * @return 分类关系DRO实体list
//     */
//    @ApiOperation(value = "查询关联的服务分类、二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<ServAssCategoryDRO>> listCategTwoByServiceCategIdAndCategOneIdAndCategTwoId(
//        @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId,
//        @Positive(message = "categOneId必须为大于0的正整数") @ApiParam(value = "一级产品分类ID", required = true) Integer categOneId,
//        @Positive(message = "categTwo必须为大于0的正整数") @ApiParam(value = "二级产品分类ID", required = true) Integer categTwo);
//
//    /**
//     * 根据服务类型ID获取关联的二级分类 过滤掉不可用的二级产品分类 如果产品不能被外部使用
//     *
//     * @param serviceCategId
//     *            服务分类ID
//     * @return 二级产品分类DRO实体集合
//     */
//    @ApiOperation(value = "根据服务类型ID获取关联的二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>>
//        listByServiceOfProduct(@NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer serviceCategId);
//
//    /**
//     * 根据一级分类获取二级分类
//     *
//     * @param servCategId
//     *            服务类型ID
//     * @param categId
//     *            一级分类ID
//     * @return 二级分类DRO实体集合
//     */
//    @ApiOperation(value = "根据一级分类获取二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>> listByCategOneIdAndCategId(@Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID") Integer servCategId,
//        @Positive(message = "categId必须为大于0的正整数") @ApiParam(value = "一级分类ID") Integer categId);
//
//    /**
//     * 根据一级分类获取二级分类
//     *
//     * @param servCategId
//     *            服务类型ID
//     * @param categIdList
//     *            一级分类ID集合
//     * @return 二级分类DRO实体集合
//     */
//    @ApiOperation(value = "根据一级分类获取二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<CategoryDRO>> listByCategOneIdListAndCategIdList(@Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID") Integer servCategId,
//        @ApiParam(value = "一级分类ID集合") List<Integer> categIdList);
//
//    /**
//     * 根据一级分类获取二级分类列表
//     *
//     * @param servCategId
//     * @param categIdList
//     * @return
//     */
//    @ApiOperation(value = "根据一级分类获取二级分类列表", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<VtDTO>> listCategoryVtByServCategIdAndCategOneIds(@Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID") Integer servCategId,
//        @ApiParam(value = "分类ID集合") List<Integer> categIdList);
//
//    /**
//     * 从产品表查启用的二级分类
//     *
//     * @param servCategId
//     * @param categOneId
//     * @return
//     */
//    @ApiOperation(value = "从产品表查启用的二级分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<KvDTO>> listCategFromProductByServCategIdAndCategOneId(
//        @NotNull(message = "serviceCategId不能为空") @Positive(message = "serviceCategId必须为大于0的正整数") @ApiParam(value = "服务分类ID", required = true) Integer servCategId,
//        @Positive(message = "categOneId必须为大于0的正整数") @ApiParam(value = "分类ID") Integer categOneId);
//
//    /**
//     * 根据渠道ID查询服务分类产品分类
//     *
//     * @param channelId
//     *            渠道ID
//     * @param showType
//     *            2前台 1后台
//     * @return 返回分类关联DRO实体
//     * @author xiangjunming
//     * @since 2020/03/20
//     */
//    @ApiOperation(value = "根据渠道ID查询服务分类产品分类", response = ResponseDTO.class, notes = "", tags = {"服务分类/产品分类关联"})
//    ResponseDTO<List<ServAssCategoryDRO>> listServAssCategoryByChannelIdAndShowType(
//        @NotNull(message = "channelId不能为空") @Positive(message = "channelId必须为大于0的正整数") @ApiParam(value = "渠道ID", required = true) Integer channelId,
//        @Positive(message = "showType必须为大于0的正整数") @ApiParam(value = "产品类型") Integer showType);
//}
